1 PRINT"[147]":POKE808,234:REM * DISABLE RUN/STOP & LIST * 2 REM * RAM BASED DISK FILING SYSTEM * DATABASE 78 * ADAPTED BY C F SMITH 3 REM * FOR SUSAN, JAMES, OLIVER, & DAVID WITH HELP FROM PAUL 4 CLOSE15:OPEN15,8,15:N$="[206]OT [206]AMED" 5 POKE53280,0:POKE53281,0: REM ** SCREEN BORDER & BACKGROUND COLOURS ** 6 PRINTCHR$(14):PRINTCHR$(8) 7 L%=0:F1=0:FL%=0 8 GOSUB 549 9 GOSUB281 10 PRINT"[158][193] - [211]TART A NEW FILE" 11 PRINT"[194] - [204]OAD OR [213]NLOAD A FILE" 12 PRINT"[195] - [211]AVE THE FILE (ARCHIVE)" 13 PRINT"[196] - [196]ISPLAY THE FILE" 14 PRINT"[197] - [193]DD RECORDS" 15 PRINT"[198] - [193]LTER A RECORD" 16 PRINT"[199] - [211]ORT BY ANY FIELD" 17 PRINT"[159][200] - [211][213][194] [205][197][206][213] 1[146][158] ([211]EARCH DATABASE)" 18 PRINT"[201] - [196]ISPLAY A RECORD ([196]ELETE OPTION)" 19 PRINT"[202] - [213]P-DATE DISK FILE" 20 PRINT"[203] - [196]ELETE ANY FILE FROM ANY DISK" 21 PRINT"[204] - [197]XIT SYSTEM" 22 PRINT"[218] - [196]IRECTORY & [215]RITE [208]ROTECT (ANY DISK)"; 23 PRINT:PRINT"[158][211]ELECT OPTION [159]"L%"[158][210]ECORDS PRESENT":FL%=L%:SL%=L% 24 GET Q$:IF Q$<"A" OR Q$>"L" ANDQ$<>"Z"THEN24 25 IF Q$="A" AND F1=1 THEN 24 26 IF Q$="B" AND F1=1 THEN 246 27 IFQ$>"B"ANDQ$<"K"ANDL%=0THENPRINT"[147] [159][206]O FILE PRESENT":GOSUB506:GOTO 9 28 IF Q$="A" THEN GOSUB 48 29 IF Q$="B" THEN GOSUB 67 30 IF Q$="C" THEN GOSUB 81 31 IF Q$="D" THEN GOSUB 94 32 IF Q$="E" THEN GOSUB 121 33 IF Q$="F" THEN GOSUB 138 34 IF Q$="G" THEN GOSUB 161 35 IF Q$="H" THEN 180 36 IF Q$="I" THEN GOSUB 215 37 IF Q$="J" THEN GOSUB 449 38 IF Q$="K" THEN GOSUB 464 39 IF Q$="L" GOTO 42 40 IF Q$="Z" THEN GOSUB 660:GOSUB693 41 GOTO 9 42 PRINT"[147]":PRINT"[158] [200]AVE YOU FORGOTTEN TO [213]PDATE OR [211]AVE":PRINT 43 PRINTTAB(12)"YOUR DISK FILE ?" 44 PRINTTAB(11)"[203]EY [195][146] TO [195]ONTINUE":GOSUB 276 45 REM * ENABLE RUN/STOP RESTORE * 46 PRINT"[147]":POKE808,237:PRINTCHR$(142):PRINTCHR$(9):CLOSE15:SYS64738 47 REM ** START FILE ROUTINE ** 48 PRINT CHR$(147) 49 PRINT:PRINT" [158][205]AXIMUM NUMBER OF RECORDS IS 300":PRINT:PRINT 50 PRINTTAB(19)"&":PRINT 51 PRINT:PRINT" [206]UMBER OF FIELDS IS FIXED AT 4":PRINT 52 PRINT:PRINT" [193]NY KEY TO [195]ONTINUE[146]" 53 GET D$:IF D$="" THEN 53 54 IF D$=CHR$(32) THEN 55 55 NF%=4:FS%=300 56 NF%=NF%-1:DIM A$(NF%,FS%) 57 PRINT CHR$(147) 58 FOR F=0 TO NF% 59 PRINT" [158][197]NTER FIELD HEADING";F+1:PRINT 60 PRINTTAB(19)"<--** [213]P TO ARROW **[146]" 61 GOSUB510:A$(F,0)=V$:PRINT 62 NEXT 63 GOSUB121 64 F1=1 65 RETURN 66 REM ** LOAD FILE ROUTINE ** 67 GOSUB238 68 OPEN 6,8,6,"0:"+N$+",S,R":PRINT:PRINT" [211]EARCHING...!" 69 GOSUB367:IF A>=20 THEN GOSUB 506:GOTO 79 70 PRINT:PRINT" [204]OADING.....";N$"[146] FILE" 71 INPUT#6,FS%,NF%,L% 72 DIM A$(NF%,FS%) 73 FOR R=0 TO L% 74 FOR F=0 TO NF% 75 INPUT#6,A$(F,R) 76 NEXT:NEXT 77 F1=1 78 CLOSE6 79 RETURN 80 REM ** SAVE FILE ROUTINE ** 81 GOSUB238 82 OPEN 6,8,6,"@:"+N$+",S,W" 83 PRINT:PRINT" [211]AVING.....";N$"[146] FILE" 84 GOSUB 367:IF A>=20 AND Z$="R" THEN GOSUB 475:GOTO 92 85 IF A>=20 THEN GOSUB 506:GOTO 92 86 PRINT#6,FS%:PRINT#6,NF%:PRINT#6,FL% 87 FOR R=0 TO FL% 88 FOR F=0 TO NF% 89 PRINT#6,A$(F,R) 90 NEXT:NEXT 91 CLOSE6 92 RETURN 93 REM ** DISPLAY FILE ROUTINE ** 94 C=1:S=1:J%=1 95 PRINT CHR$(147):PRINT"[145][158] [203]EY [213] FOR [213][208] OR [203]EY [196] FOR [196][207][215][206] [146]"; 96 PRINT" [211]PACE [194]AR FOR [205][193][201][206] [205][197][206][213] [146]"; 97 PRINTTAB(11)"[210]ECORD [206]UMBER";J% 98 SS=S:IF SS>FL% THEN SS=FL% 99 FOR R=S TO SS:PRINT""A$(0,0):PRINT 100 PRINTTAB(1)A$(0,R):PRINT 101 PRINT""A$(C,0):PRINT 102 PRINTTAB(1)A$(C,R):PRINT 103 PRINT""A$(C+1,0):PRINT 104 PRINTTAB(1)A$(C+1,R):PRINT 105 PRINT""A$(C+2,0):PRINT 106 PRINTTAB(1)A$(C+2,R) 107 GETK$:IFK$<>CHR$(32)ANDK$<>"U"ANDK$<>"D"THEN107 108 IF K$=CHR$(32) THEN 119 109 IF K$="U" THEN S=S+1 110 IF K$="U" THEN J%=J%+1 111 IF K$="D" THEN S=S-1:IF S<1 THEN S=L%:IF SL%SL%THENJ%=SL% 113 IF C<1 THEN C=NF% 114 IF C>NF% THEN C=1 115 IF S<1 THEN S=(INT(FL%/2)*2)+1 116 IF S>FL% THEN S=1 117 IF J%>FL% THEN J%=1 118 GOTO95 119 RETURN 120 REM ** ADD RECORDS ROUTINE ** 121 PRINT CHR$(147):IF L%>=FS% THEN PRINT" [158][198]ILE FULL":GOSUB506:GOTO135 122 L%=L%+1 123 POKE53280,11:PRINT"[145] [158][212]YPE '[159][197][216][201][212][158]' TO FINISH ENTRY OF RECORDS" 124 PRINT 125 PRINT" [210]ECORD [206]UMBER ";L% 126 PRINT"[159]<----[212]WO LINES, MAXIMUM (78 CHAR'S)---->[146]"; 127 PRINT"* [203]EEP CURSOR ON FIRST OR SECOND LINES *[146]"; 128 F=-1 129 F=F+1 130 PRINT" [158]";A$(F,0):PRINT 131 GOSUB348:A$(F,L%)=K$ 132 IFA$(F,L%)="[197][216][201][212]"THEN L%=L%-1:GOTO135 133 IF F38THEN152 151 POKE198,0:POKE19,1:INPUT"[145] [146][158]";K$:POKE19,0:GOTO 153 152 POKE198,0:POKE19,1:INPUT"[145][145] [146][158]";K$:POKE19,0 153 IF LEN(K$)>78 THEN K$=LEFT(K$,78) 154 IF LEN(K$)<1 THEN 159 155 A$(F,R)=K$:PRINTCHR$(147):PRINT" [193]LTER ANOTHER FIELD ? [203][197][217] [217][146] OR [206][146]" 156 GET X$:IFX$<>"Y"ANDX$<>"N"THEN156 157 IFX$="Y"THEN 139 158 IFX$="N"THEN 159 159 POKE53280,0:RETURN 160 REM ** SORT FILE ROUTINE MAIN MENU ** 161 GOSUB254 162 REM ** 163 IF FL%<2 THEN 178 164 PRINT CHR$(147):PRINT" [211]ORTING BY ";A$(F,0) 165 N%=FL% 166 N%=(N%+2)/3 167 FOR D=N%+1 TO N%*2 168 FOR E=D TO FL% STEP N% 169 FOR R=E TO D STEP -N% 170 IF A$(F,R)>A$(F,R-N%) THEN 175 171 FOR C=0 TO NF% 172 K$=A$(C,R):A$(C,R)=A$(C,R-N%):A$(C,R-N%)=K$ 173 NEXT 174 NEXT 175 NEXT E 176 NEXT 177 IF N%>1 THEN 166 178 RETURN 179 REM ** SEARCH/SHRINK FILE MENU ** 180 GOSUB361 181 PRINT" [158][211]HRINK A FILE AND [211]EARCH ANY FIELD" 182 PRINT" [205] - <> '$' [206] - = '$'" 183 PRINT" [207] - >= '$' [208] - < '$'" 184 PRINT" [209] - [195]HARACTER GROUP" 185 PRINT"==============[207][212][200][197][210] [207][208][212][201][207][206][211][146]=============" 186 PRINT" [210] - [211]AVE SUB-FILE" 187 PRINT" [211] - [196]ISPLAY SUB-FILE OR M/F IF ABSENT" 188 PRINT" [212] - [211]ORT SUB-FILE BY ANY FIELD" 189 PRINT" [213] - [196]ELETE SUB-FILE FROM MAIN FILE & RETURN TO MAIN MENU" 190 PRINT" [214] - [204]IST FIRST FIELDS" 191 PRINT" [159][215] - [205][193][201][206] [205][197][206][213][146][158] ** DESTROYS SUB-FILE" 192 PRINT" [216] - [195]HECK FREE SPACE IN FILE" 193 PRINT" [217] - [211]END TO [159]";SP$"[158] PRINTER" 194 PRINT" [218] - [196]IRECTORY DISPLAY (ANY DISK) 195 [153] 196 [153]"(null)ELECT OPTION OPEN"SL%"SYS(null)ECORDS IN SUB-FILESYS":FL%[178]SL% 197 [161] Z$:[139] Z$[179]"M" [176] Z$[177]"Z" [167] 197 198 [139] Z$[178]"M" [167] [141] 289 199 [139] Z$[178]"N" [167] [141] 289 200 [139] Z$[178]"O" [167] [141] 289 201 [139] Z$[178]"P" [167] [141] 289 202 [139] Z$[178]"Q" [167] [141] 289 203 [139] Z$[178]"R" [167] [141] 81 204 [139] Z$[178]"S" [167] [141] 94 205 [139] Z$[178]"T" [167] [141] 489 206 [139] Z$[178]"U" [137] 340 207 [139] Z$[178]"V" [167] [141] 404 208 [139] Z$[178]"W" [167] 9 209 [139] Z$[178]"X" [167] [141] 353 210 [139] Z$[178]"Y" [175] SP$[178]"(null)(null)ATN(null)" [167] [141] 375 211 [139] Z$[178]"Y" [175] SP$[178]"LENPEEK(null)" [167] [141] 559 212 [139] Z$[178]"Z" [167] [141] 660:[141] 693 213 [137] 180 214 [143] ** DELETE RECORD ROUTINE ** 215 Z$[178]"":[141]263 216 [153] [199](147) 217 [153]"ON (null)VALLEN(null)(null)STR$ STR$RIGHT$(null)(null)(null)ATN(null) **** (null)RIGHT$(null)LEFT$CLOSESTR$VAL(null)VAL(null)VALCLOSE(null)(null)(null)RIGHT$(null)(null) WAIT" 218 [129] C[178]0 [164] NF% 219 [153]""A$(C,0)"WAIT":[153] 220 [153][163]1)A$(C,R):[153] 221 [130] 222 [153]"OPENSTR$ELETE THIS RECORD ?WAIT ((null)/(null))" 223 [161] K$:[139] K$[179][177]"N" [175] K$[179][177]"Y" [167] 223 224 [139] K$[178]"N" [167] 236 225 [139] K$[178]"Y" [167] [153]"LOADSYS ATNRE YOU SURE ? ((null)/(null))" 226 [161] K$:[139] K$[179][177]"N" [175] K$[179][177]"Y" [167] 226 227 [139] K$[178]"N" [167] 236 228 [139] K$[178]"Y" [167] 229 229 [139] L%[178]1 [167] 235 230 [129] F[178]0 [164] NF% 231 A$(F,R)[178]A$(F,R[170]1) 232 [130] 233 R[178]R[170]1 234 [139] R[179]L% [167] 230 235 L%[178]L%[171]1 236 [142] 237 [143] ** FILE NAME ROUTINE ** 238 [141] 684 239 [153]" SYSVALNTER THE (null)(null)RIGHT$(null)(null)VALWAIT NAME FOR THE FILE":[153] 240 [153]" <--** (null)P TO ARROW *** WAIT" 241 [141]348 242 N$[178]K$ 243 [139] [195](N$)[177]16[167][153]"LOAD":[153][163]14)"(null)OO LONG !":[153]:[137]239 244 [142] 245 [143] ** BELT AND BRACES SPACE BAR PROTECTION ROUTINE ** 246 [153]"LOADSYS LENAUTIONCLOSE!: (null)PTION DESTROYSCLOSELOADED FILE" 247 [153]:[153] 248 [153]" *** (null)(null)VAL(null)(null)CLOSE(null)(null)ATNLENVALCLOSEPEEKATN(null)CLOSECLOSEASC(null)(null)CLOSE(null)ATNRIGHT$(null)CLOSE(null)VAL(null)(null) *** ":[153] 249 [153]:[153]" (null)RESS 'LEN' TO CLEAR FILEWAIT" 250 [161] K$:[139] K$[179][177]"C" [175] K$[179][177][199](32) [167] 250 251 [139] K$[178][199](32) [167] 9 252 [139] K$[178]"C" [167] [138] 253 [143] ** FIND FIELD ROUTINE ** 254 [153] [199](147) 255 F[178][171]1:[153]" SYS(null)PERATE ON WHICH FIELD? (GIVE HEADING)":[153] 256 [141]348 257 F[178]F[170]1 258 [139] K$[178][200](A$(F,0),[195](K$)) [167] 261 259 [139] F[179]NF% [167] 257 260 [153] [199](147):[153]" SYS(null)O SUCH FIELD":[141]276:[137]254 261 [142] 262 [143] ** FIND RECORD ROUTINE ** 263 [153] [199](147):R[178]0 264 [139] Q$[178]"F" [176] Q$[178]"I" [167] F[178]0 265 [153]" SYSCHR$IVE RECORD ENTRY UNDER ";A$(F,0)"WAIT":[153] 266 [141]348 267 R[178]R[170]1 268 [139] K$[178][200](A$(F,R),[195](K$)) [167] 274 269 [139] R[179]FL% [167] 267 270 [153][199](147):[153]" SYS(null)O SUCH RECORD ** (null)EY 'LEN' TO TRY AGAIN " 271 [139] Q$[178]"F"[176]Q$[178]"I"[175]Z$[178]""[167][141] 276 272 [139] Z$[178]"Y"[167][141]688 273 [137] 263 274 [142] 275 [143] ** PRESS SPACE BAR ROUTINE ** 276 [153]:[153]" SYS***** (null)(null)ATNLENVALCLOSEPEEKATN(null)CLOSEASC(null)(null)CLOSE(null)ATNRIGHT$(null)CLOSE(null)VAL(null)(null) *****" 277 [161] K$:[139] K$[179][177]"C" [175] K$[179][177][199](32) [167] 277 278 [139] K$[178]"C" [167] [142] 279 [139] K$[178][199](32) [167] 9 280 [143] ** TITLE/STATUS SUBROUTINE ** 281 [153]"LOAD" 282 [153]"ONSYS STR$ATN(null)ATNPEEKATN(null)VAL 78 (null)ATNRIGHT$(null) (null)VAL(null)(null) STR$ATN(null)ATNPEEKATN(null)VAL 78 "; 283 [153]" (null)ATN(null) PEEKATN(null)VALSTR$ * STR$RIGHT$(null)(null) * ASCRIGHT$(null)RIGHT$(null)CHR$ (null)(null)(null)(null)VAL(null) " 284 [139] F1[178]0 [167] [153]"OPEN(null)O FILE PRESENTWAIT":[153] 285 [139]F1[178]1[167][153]"OPENASCILE LOADED IS ";[199](18);[199](158)" ";N$" "[199](146):[153] 286 [139] F1[178]1 [167] [153][163]8)"OPEN(null)OP LIMIT IS";FS%"RECORDS":[153] 287 [142] 288 [143] ** SEARCH DIRECTOR ROUTINE ** 289 [141]479:[139]FF$[178]" SYS(null)O SUCH FIELD"[167] 303 290 [153]:[153]" SYS(null)EARCH TO OPERATE ON ";A$(F,0):[153] 291 [139] Z$[179]"Q" [167] [153]" CHR$IVE SEARCH STR$ATUM/VALNTITY":[153] 292 [139] Z$[178]"Q" [167] [153]" CHR$IVE CHARACTER GROUP":[153] 293 [141]348:B$[178]K$:L2%[178]0 294 [153]:[153]" (null)EARCHING FOR....";B$"WAIT" 295 [139] Z$[178]"M" [167] [141] 305 296 [139] Z$[178]"N" [167] [141] 310 297 [139] Z$[178]"O" [167] [141] 315 298 [139] Z$[178]"P" [167] [141] 320 299 [139] Z$[178]"Q" [167] [141] 325 300 [139] L2%[177]0 [167] SL%[178]L2%:[139] L2%[178]0 [167] SL%[178]FL% 301 [139]L2%[178]0[167][153]"LOAD":[153]" (null)EARCH IS NEGATIVESYS":[141]475 302 [139]L2%[177]0[167][153]"LOAD":[153]" (null)EARCH IS POSITIVESYS":[141]475 303 [142] 304 [143] ** SEARCH <> ** 305 [129] R[178]1 [164] SL% 306 [139] A$(F,R)[179][177]B$ [167] L2%[178]L2%[170]1:[141]335 307 [130] 308 [142] 309 [143] ** SEARCH = ** 310 [129] R[178]1 [164] SL% 311 [139] A$(F,R)[178]B$ [167] L2%[178]L2%[170]1:[141]335 312 [130] 313 [142] 314 [143] ** SEARCH >= ** 315 [129] R[178]1 [164] SL% 316 [139] A$(F,R)[177][178]B$ [167] L2%[178]L2%[170]1:[141]335 317 [130] 318 [142] 319 [143] ** SEARCH < ** 320 [129] R[178]1 [164] SL% 321 [139] A$(F,R)[179]B$ [167] L2%[178]L2%[170]1:[141]335 322 [130] 323 [142] 324 [143] ** SEARCH FOR SUBSTRING ** 325 LC[178][195](B$) 326 [129] R[178]1 [164] SL% 327 LT[178][195](A$(F,R)) 328 [139] LC[177]LT [167] 332 329 [129] K[178]1 [164] LT[171]LC[170]1 330 [139] B$[178][202](A$(F,R),K,LC) [167] L2%[178]L2%[170]1:[141]335:[137]332 331 [130] 332 [130] R 333 [142] 334 [143] ** MOVE RECORD ROUTINE ** 335 [129] C[178]0 [164] NF% 336 K$[178]A$(C,R):A$(C,R)[178]A$(C,L2%):A$(C,L2%)[178]K$ 337 [130] 338 [142] 339 [143] ** DELETE SUB FILE ROUTINE ** 340 [139] SL%[178]L% [167] 345 341 [129] R[178]SL%[170]1 [164] L% 342 [129] F[178]0 [164] NF% 343 A$(F,R[171]SL%)[178]A$(F,R) 344 [130]:[130] 345 L%[178]L%[171]SL%:S%[178]10 346 [137] 9 347 [143] ** INPUT VALIDATION ROUTINE ** 348 [151]198,0:[151]19,1:K$[178]"":[133]" ";K$:[153]:[143] CLEAR K/B'D & SUPPRESS "?" 349 [151]19,0:[139] K$[178]"" [167] 348:[143] * RESET "?" ON INPUT * 350 [139] [195](K$)[177]78 [167] K$[178][200](K$,78) 351 [142] 352 [143] ** BYTES FREE ROUTINE ** 353 [153] [199](147) 354 [153]" SYS(null)LEASE WAIT A MOMENT, RIGHT$'M CHECKING THE":[153] 355 [153][163]8)"FREE SPACE IN THE FILE." 356 X[178][184](0)[171]([180]([184](0))[179]0)[172]65535 357 [153]:[153]"OPEN (null)HE NUMBER OF BYTES FREE ISWAIT";X:[153]:Y%[178][181](X[173]300) 358 [153]" OR SPACE FOR APPROX'Y";Y%;"FULL RECORDS." 359 [141] 475:[142] 360 [143] ** SUB MENU TITLE ** 361 [153]"LOAD" 362 [153]"ONSYSSTR$ATN(null)ATNPEEKATN(null)VAL 78 OPEN(null)(null)PEEK (null)VAL(null)(null) (null)(null)VALWAITSYS STR$ATN(null)ATNPEEKATN(null)VAL 78 WAIT"; 363 [153]" (null)ATN(null)CLOSEPEEKATN(null)VALSTR$CLOSE* STR$RIGHT$(null)(null) * ASCRIGHT$(null)RIGHT$(null)CHR$CLOSE(null)(null)(null)(null)VAL(null)WAIT" 364 [153]"========================================" 365 [142] 366 [143] ** READ ERROR CHANNEL ROUTINE ** 367 [132]15,A,B$,C,D 368 [139] A[179]20 [167] 373 369 [153]"LOAD":[153]"VALRROR (null)O."A:[153] 370 [153]""B$"WAIT":[153] 371 [153]"(null)RACK (null)O."C:[153] 372 [153]"PEEKLOCK ((null)ECTOR) (null)O."D:[160] 6 373 [142] 374 [143] ** SEND TO STAR PRINTER ** FILE & ON TO RECORD ** 375 [153][199](147):[153][163]8)"SYS(null)RINT A ASCILE OR (null)ECORD ?":[153] 376 [153][163]13)[199](5)"(null)EY ASCWAIT OR (null)WAIT" 377 [161] U$:[139] U$[179][177]"F" [175] U$[179][177]"R" [167] 377 378 [139] U$[178]"F" [167] [141] 515:[137] 380 379 [139] U$[178]"R" [167] Q$[178]"I":[141] 263:[141] 515:[137] 424 380 [141] 425 381 [139] W$[178]"Y" [167] 590 382 [139] W$[178]"E" [167] 180 383 [153]"LOAD":[153]:[153]" SYS(null)LEASE DO NOT DISTURB, RIGHT$'M PRINTING!WAIT" 384 C[178]1:S[178]1:SS[178]S[170]FL%:[139] SS[177]FL% [167] SS[178]FL%:T[178]SL% 385 [159] 5,4:[157] 5, PR$:[152]5,[199](17)" ";N$" FILE":[152]5 386 [129] R[178]S [164] SS 387 [152]5,[199](17);A$(0,0) 388 [152]5:[152]5,[199](17)" ";A$(0,R) 389 [152]5 390 [152]5,[199](17);A$(C,0):[152]5:[152]5,[199](17)" ";A$(C,R):[152]5 391 [152]5,[199](17);A$(C[170]1,0):[152]5:[152]5,[199](17)" ";A$(C[170]1,R):[152]5 392 [152]5,[199](17);A$(C[170]2,0):[152]5:[152]5,[199](17)" ";A$(C[170]2,R):[152]5 393 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) [167] 398 394 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) [167] 398 395 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) [167] 398 396 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) [167] 398 397 [152]5,"========================================":[137] 399 398 [152]5," ========================" 399 [152]5:[130] 400 [152]5,[199](17)" (null)OTAL NUMBER OF RECORDS IN FILE IS"T 401 [152]5:[152]5,[199](27);[199](64):[143] * RESET * 402 [160] 5:[142] 403 [143] *** LIST FIRST FIELDS *** 404 S[178]1 405 [153][199](147):[153]"ON SYSASCRIGHT$(null)(null)(null)CLOSEASCRIGHT$VAL(null)STR$ (null)RIGHT$(null)(null)RIGHT$(null)CHR$" 406 [153]" (null)EY (null) OR (null)EYCLOSESTR$WAIT" 407 [153]" (null)(null)ATNLENVALCLOSEPEEKATN(null)CLOSEASC(null)(null)CLOSE(null)(null)PEEKCLOSE(null)VAL(null)(null)" 408 [153]"========================================"; 409 [153]" ";A$(0,0);" VALIGHT AT A TIMEWAIT" 410 [153]"========================================"; 411 SS[178]S[170]7 412 [139] SS[177]FL% [167] SS[178]FL% 413 [129] R[178]S [164] SS:[153]" ";A$(0,R) 414 [130] 415 [161] K$:[139] K$[179][177][199](32)[175]K$[179][177]"U"[175]K$[179][177]"D"[167]415 416 [139] K$[178][199](32) [167] 422 417 [139] K$[178]"U" [167] S[178]S[170]8 418 [139] K$[178]"D" [167] S[178]S[171]8:[139] SS[179]8 [167] SS[178]SL% 419 [139] S[179]1 [167] S[178]([181](FL%[173]8)[172]8)[170]1 420 [139] S[177]FL% [167] S[178]1 421 [137] 405 422 [142] 423 [143] *** PRINT A RECORD *** 424 [141] 425:[137] 431 425 [153][199](147):[153]" SYSLEFT$AVE YOU SWITCHED ON MY PRINTER ?":[153] 426 [153]" RIGHT$ WILL  LEN(null)ATN(null)LEFT$ WAIT IF YOU HAVEN'T":[153] 427 [153][163]16)[199](30)"(null)EY (null)":[153] 428 [153][163]13)[199](5)" VAL TO VAL(null)LENATN(null)VAL WAIT" 429 [161] W$:[139] W$[179][177]"E" [175] W$[179][177]"Y" [167] 429 430 [142] 431 [139] W$[178]"Y" [167] 434 432 [139] W$[178]"E" [167] 180 433 [143] * PRINT A RECORD * 434 [153]"LOAD":[153]:[153]" SYS(null)LEASE DO NOT DISTURB, RIGHT$'M PRINTING!WAIT" 435 [159] 5,4:[129] C[178]0 [164] NF% 436 [157] 5, PR$ 437 [152]5,[199](17);A$(C,0) 438 [152]5:[152]5,[199](17)" ";A$(C,R) 439 [130] 440 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) [167] 445 441 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) [167] 445 442 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) [167] 445 443 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) [167] 445 444 [152]5,"========================================":[137] 446 445 [152]5," ========================" 446 [152]5,[199](27);[199](64):[143] * RESET * 447 [160] 5:[142] 448 [143] ** UPDATE DISK * SAVE & REPLACE ROUTINE * (INCLUDES ROUTINE AT 3010)* 449 [153]"LOAD":[153][163]15)[199](5)" (null)ATN(null)(null)RIGHT$(null)CHR$ WAIT" 450 [153]"SYS  LEFT$ATN(null)VALCLOSE(null)(null)(null)CLOSELENLEFT$VALLEN(null)VALSTR$CLOSE(null)LEFT$VALCLOSE(null)(null)RIGHT$(null)VALCLOSE(null)(null)(null)(null)VALLEN(null) ? WAIT" 451 [153]" SYS (null)HIS IS A SAVE AND REPLACE FACILITY. WAIT" 452 [153]" SYS(null)AKE SURE THAT YOUR ORIGINAL FILE DISKWAIT" 453 [153]" SYSIS IN DRIVE '0'. (null)EY 'LEN' TO LENONTINUE !WAIT" 454 [153][163]13)[199](5)" VAL TO VAL(null)LENATN(null)VAL WAIT" 455 [161] P$:[139] P$[179][177]"E" [175] P$[179][177]"C" [167] 455 456 [139] P$[178]"E" [167] 9 457 [139] P$[178]"C" [167] 458 458 [153][199](147):[153]" SYSSTR$O NOT DISTURB, RIGHT$'M UPDATING THE DISK!" 459 [153]:[153]:[153]" STR$ELETING...";N$"WAIT FILE":[153]:[153] 460 [152]15,"S 0:"[170]N$[170]"":[143] ** SCRATCH A FILE ROUTINE ** 461 [141] 367:[139] A[177][178]20 [167] [141] 506:[142] 462 [137] 82 463 [143] ** DELETE A FILE FROM DISK ROUTINE ** 464 [141] 684:[153]" SYSVALNTER NAME OF FILE TO BE STR$ELETEDWAIT":[153] 465 [153]" (null)R IF YOU ARE HERE BY MISTAKE TYPE":[153] 466 [153][163]13)[199](5)" VAL TO VAL(null)LENATN(null)VAL WAIT":[153] 467 [151]19,1:[133]"SYS ";DF$:[151]19,0 468 [139] DF$[178]"E"[176]DF$[178]"VAL"[167] 9 469 [139] DF$[179][177]"E"[176]DF$[179][177]"E"[167] 470 470 [152]15,"SCRATCH 0:"[170]DF$[170]"":[143] ** DELETE A FILE ROUTINE ** 471 [153]:[153]:[153]" STR$ELETING.....";DF$"WAIT FILE" 472 [141] 367:[139] A[177][178]20 [167] [141] 506 473 [142] 474 [143] ** SUB MENU SPACE BAR ROUTINE ** 475 [153]:[153]" SYS***** (null)(null)ATNLENVALCLOSEPEEKATN(null)CLOSEASC(null)(null)CLOSE(null)(null)PEEKCLOSE(null)VAL(null)(null) *****" 476 [161] K$:[139] K$[179][177][199](32) [167] 476: 477 [142] 478 [143] ** FIND FIELD ROUTINE FOR SUB MENU ** 479 [153]"LOAD":F[178][171]1:FF$[178]"0" 480 [153]" (null)PERATE ON WHICH FIELD? (GIVE HEADING)":[153] 481 [141] 348 482 F[178]F[170]1 483 [139] K$[178][200](A$(F,0),[195](K$)) [167] 486 484 [139] F[179]NF% [167] 482 485 FF$[178]" SYS(null)O SUCH FIELD":[153]"LOAD":[153]FF$:[141] 475 486 [142] 487 . 488 [172][172] S[176]T FILE ROUTINE [129] SUB MENU [172][172] 489 [141]479:[139]FF$[178]" SYS(null)O SUCH FIELD"[167] 504 490 [139] FL%[179]2 [167] 504 491 [153][199](147):[153]" SYS(null)ORTING BY ";A$(F,0) 492 N%[178]FL% 493 N%[178](N%[170]2)[173]3 494 [129] D[178]N%[170]1 [164] N%[172]2 495 [129] E[178]D [164] FL% [169] N% 496 [129] R[178]E [164] D [169] [171]N% 497 [139] A$(F,R)[177]A$(F,R[171]N%) [167] 501 498 [129] C[178]0 [164] NF% 499 K$[178]A$(C,R):A$(C,R)[178]A$(C,R[171]N%):A$(C,R[171]N%)[178]K$ 500 [130]:[130] 501 [130] E 502 [130] 503 [139] N%[177]1 [167] 493 504 [142] 505 [143] ** MAIN MENU SPACE BAR ROUTINE WITHOUT OPTION ** 506 [153]:[153]" SYS***** (null)(null)ATNLENVALCLOSEPEEKATN(null)CLOSEASC(null)(null)CLOSE(null)ATNRIGHT$(null)CLOSE(null)VAL(null)(null) *****" 507 [161] M$:[139] M$[179][177][199](32) [167] 507 508 [142] 509 [143] * FIELD HEADING INPUT VALIDATION ROUTINE * 510 [151]198,0:[151]19,1:V$[178]"":[133]" ";V$:[153] 511 [151]19,0:[139] V$[178]"" [167] 510 512 [139] [195](V$)[177]18 [167] V$[178][200](V$,18) 513 [142] 514 [143] * PRINT STAR STYLE ROUTINE * 515 [153]"LOAD":[153][163]6)"SYS(null)VAL(null)VALLEN(null)CLOSE(null)(null)(null)(null)CLOSE(null)(null)(null)(null)VALCLOSE& LEN(null)(null)(null)(null)(null)WAIT":[153]:[153] 516 [153]" ATN-VALXPANDED BLACKWAIT RIGHT$-VALXPANDED ITALICWAIT":[153] 517 [153]" PEEK-VALXPANDED REDSYS MID$-VALXPANDED ITALICSYS":[153] 518 [153]" LEN-VALXPANDED BLUESYS (null)-VALXPANDED ITALICSYS":[153] 519 [153]" STR$-VALXPANDED CLRVIOLETSYS (null)-VALXPANDED CLRITALICSYS":[153] 520 [153][199](5)"  VAL TO VAL(null)LENATN(null)VAL WAITSYS (null)-STR$RAFT BLACKWAIT":[153] 521 [153]" ASC-VALXPANDED SYSYELLOW (null)-VALXPANDED ITALICSYS":[153] 522 [153]" CHR$-VALXPANDED FORORANGESYS (null)-VALXPANDED FORITALICSYS":[153] 523 [153]" LEFT$-VALXPANDED GREENSYS (null)-VALXPANDED ITALICSYS":[153] 524 [153]" (null)-STR$RAFT REDSYS (null)-STR$RAFT BLUESYS":[153] 525 [161] G$:[139]G$[179]"A"[176]G$[177]"O"[175]G$[179]"X"[176]G$[177]"Z"[167]525 526 EP$[178][199](27)[170][199](53)[170][199](14)[170][199](27)[170][199](114) 527 EI$[178][199](14)[170][199](27)[170][199](52)[170][199](27)[170][199](114) 528 [139] G$[178]"A" [167] PR$[178]EP$[170][199](0) 529 [139] G$[178]"B" [167] PR$[178]EP$[170][199](1) 530 [139] G$[178]"C" [167] PR$[178]EP$[170][199](2) 531 [139] G$[178]"D" [167] PR$[178]EP$[170][199](3) 532 [139] G$[178]"E" [167] 180 533 [139] G$[178]"F" [167] PR$[178]EP$[170][199](4) 534 [139] G$[178]"G" [167] PR$[178]EP$[170][199](5) 535 [139] G$[178]"H" [167] PR$[178]EP$[170][199](6) 536 [139]G$[178]"I"[167] PR$[178]EI$[170][199](0) 537 [139]G$[178]"J"[167] PR$[178]EI$[170][199](1) 538 [139]G$[178]"K"[167] PR$[178]EI$[170][199](2) 539 [139]G$[178]"L"[167] PR$[178]EI$[170][199](3) 540 [139]G$[178]"M"[167] PR$[178]EI$[170][199](4) 541 [139]G$[178]"N"[167] PR$[178]EI$[170][199](5) 542 [139]G$[178]"O"[167] PR$[178]EI$[170][199](6) 543 [139]G$[178]"X"[175]SP$[178]"(null)(null)ATN(null)"[167]PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) 544 [139]G$[178]"Y"[175]SP$[178]"(null)(null)ATN(null)"[167]PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) 545 [139]G$[178]"Z"[175]SP$[178]"(null)(null)ATN(null)"[167]PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) 546 [142] 547 [137] 515 548 [143] * SELECT PRINTER ROUTINE * 549 [153]"LOAD":[153]"ONSYS STR$ATN(null)ATNPEEKATN(null)VAL 78 * BY * LEN ASC (null)(null)RIGHT$(null)LEFT$ "; 550 [153]" (null)ATN(null) PEEKATN(null)VALSTR$CLOSE* STR$RIGHT$(null)(null) * ASCRIGHT$(null)RIGHT$(null)CHR$ (null)(null)(null)(null)VAL(null) " 551 [153][163]7)"SYS(null)LEASE STATE YOUR PRINTERWAIT" 552 [153][163]8)" LENWAIT - FOR OPENLENPEEK(null)SYS (null)RINTER" 553 [153][163]8)" (null)WAIT - FOR OPEN(null)(null)ATN(null)SYS (null)LEN-10LEN" 554 [161] V$:[139] V$[179][177]"C" [175] V$[179][177]"S" [167] 554 555 [139] V$[178]"C" [167] SP$[178]"LENPEEK(null)" 556 [139] V$[178]"S" [167] SP$[178]"(null)(null)ATN(null)" 557 [142] 558 [143] * CBM PRINTER ROUTINE * 559 [153]"LOAD":[153][163]8)"SYS(null)(null)RIGHT$(null)(null)CLOSEATNCLOSEASCRIGHT$(null)VALCLOSE(null)(null)CLOSE(null)VALLEN(null)(null)STR$ ?":[153] 560 [153][163]13)[199](5)"(null)EY ASCWAIT OR (null)WAIT" 561 [161] U$:[139] U$[179][177]"F" [175] U$[179][177]"R" [167] 561 562 [139] U$[178]"F" [167] [141] 565:[137] 380 563 [139] U$[178]"R" [167] Q$[178]"I":[141] 263:[141] 565:[137] 424 564 [143] * PRINT CBM STYLE ROUTINE * 565 [153]"LOAD":[153][163]6)"SYS(null)VAL(null)VALLEN(null)CLOSE(null)(null)(null)(null)CLOSE(null)(null)(null)(null)VAL & LEN(null)(null)(null)(null)(null)WAIT":[153]:[153] 566 [153][163]10)"ATN - VALXPANDED BLACKWAIT":[153] 567 [153][163]10)"PEEK - VALXPANDED REDSYS":[153] 568 [153][163]10)"LEN - VALXPANDED CLRPURPLESYS":[153] 569 [153][163]10)"STR$ - VALXPANDED GREENSYS":[153] 570 [153][163]10)"ASC - VALXPANDED BLUESYS":[153] 571 [153][163]10)"CHR$ - VALXPANDED SYSYELLOWSYS":[153] 572 [153][163]10)"(null) - STR$RAFT REDWAIT":[153] 573 [153][163]10)"SYS(null) - STR$RAFT BLUEWAIT":[153] 574 [153][163]10)"SYS(null) - STR$RAFT BLACKWAIT":[153] 575 [153][163]13)[199](5)" VAL TO VAL(null)LENATN(null)VAL WAITSTOP" 576 [161] G$:[139]G$[179]"A"[176]G$[177]"G"[175]G$[179]"X"[176]G$[177]"Z"[167]576 577 CE$[178][199](14)[170][199](20) 578 [139] G$[178]"A" [167] PR$[178]CE$[170][199](0) 579 [139] G$[178]"B" [167] PR$[178]CE$[170][199](2) 580 [139] G$[178]"C" [167] PR$[178]CE$[170][199](4) 581 [139] G$[178]"D" [167] PR$[178]CE$[170][199](5) 582 [139] G$[178]"E" [167] 180 583 [139] G$[178]"F" [167] PR$[178]CE$[170][199](6) 584 [139] G$[178]"G" [167] PR$[178]CE$[170][199](7) 585 [139]G$[178]"X"[175]SP$[178]"LENPEEK(null)" [167] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) 586 [139]G$[178]"Y"[175]SP$[178]"LENPEEK(null)" [167] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) 587 [139]G$[178]"Z"[175]SP$[178]"LENPEEK(null)" [167] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) 588 [142] 589 [137] 565 590 [153]"LOAD":[153]"SYS (null)HICH FIELD DO YOU WANT IN ADDITION":[153] 591 C[178]0:[153]" TO ";A$(C,0)"WAIT ?":[153] 592 [153][163]14)"ATN - ATNLL":[153] 593 [153][163]14)"PEEK - "A$(C[170]1,0):[153] 594 [153][163]14)"LEN - "A$(C[170]2,0):[153] 595 [153][163]14)"STR$ - "A$(C[170]3,0):[153] 596 [153][163]13)[199](5)" VAL TO VAL(null)LENATN(null)VAL WAITSYS":[153] 597 [153][163]10)"(null)AKE YOUR SELECTION" 598 [161] O$:[139] O$[179]"A" [176] O$[177]"E" [167] 598 599 [139] O$[178]"A" [167] 383 600 [139] O$[178]"B" [167] [141] 605:[137] 180 601 [139] O$[178]"C" [167] [141] 623:[137] 180 602 [139] O$[178]"D" [167] [141] 641:[137] 180 603 [139] O$[178]"E" [137] 180 604 [143] * PRINT SEPARATE FIELDS ROUTINE * 605 [153]"LOAD":[153]:[153]" SYS(null)LEASE DO NOT DISTURB, RIGHT$'M PRINTING!WAIT" 606 C[178]1:S[178]1:SS[178]S[170]FL%:[139] SS[177]FL% [167] SS[178]FL%:T[178]SL% 607 [159] 5,4:[157] 5, PR$:[152]5,[199](17)" ";N$" FILE":[152]5 608 [129] R[178]S [164] SS 609 [152]5,[199](17);A$(0,0) 610 [152]5:[152]5,[199](17)" ";A$(0,R) 611 [152]5 612 [152]5,[199](17);A$(C,0):[152]5:[152]5,[199](17)" ";A$(C,R):[152]5 613 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) [167] 618 614 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) [167] 618 615 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) [167] 618 616 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) [167] 618 617 [152]5,"========================================":[137] 619 618 [152]5," ========================" 619 [152]5:[130] 620 [152]5,[199](17)" (null)OTAL NUMBER OF RECORDS IN FILE IS"T 621 [152]5:[152]5,[199](27);[199](64):[143] * RESET * 622 [160] 5:[142] 623 [153]"LOAD":[153]:[153]" SYS(null)LEASE DO NOT DISTURB, RIGHT$'M PRINTING!WAIT" 624 C[178]1:S[178]1:SS[178]S[170]FL%:[139] SS[177]FL% [167] SS[178]FL%:T[178]SL% 625 [159] 5,4:[157] 5, PR$:[152]5,[199](17)" ";N$" FILE":[152]5 626 [129] R[178]S [164] SS 627 [152]5,[199](17);A$(0,0) 628 [152]5:[152]5,[199](17)" ";A$(0,R) 629 [152]5 630 [152]5,[199](17);A$(C[170]1,0):[152]5:[152]5,[199](17)" ";A$(C[170]1,R):[152]5 631 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) [167] 636 632 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) [167] 636 633 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) [167] 636 634 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) [167] 636 635 [152]5,"========================================":[137] 637 636 [152]5," ========================" 637 [152]5:[130] 638 [152]5,[199](17)" (null)OTAL NUMBER OF RECORDS IN FILE IS"T 639 [152]5:[152]5,[199](27);[199](64):[143] * RESET * 640 [160] 5:[142] 641 [153]"LOAD":[153]:[153]" SYS(null)LEASE DO NOT DISTURB, RIGHT$'M PRINTING!WAIT" 642 C[178]1:S[178]1:SS[178]S[170]FL%:[139] SS[177]FL% [167] SS[178]FL%:T[178]SL% 643 [159] 5,4:[157] 5, PR$:[152]5,[199](17)" ";N$" FILE":[152]5 644 [129] R[178]S [164] SS 645 [152]5,[199](17);A$(0,0) 646 [152]5:[152]5,[199](17)" ";A$(0,R) 647 [152]5 648 [152]5,[199](17);A$(C[170]2,0):[152]5:[152]5,[199](17)" ";A$(C[170]2,R):[152]5 649 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](0) [167] 654 650 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](1) [167] 654 651 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](2) [167] 654 652 [139] PR$[178][199](15)[170][199](27)[170][199](114)[170][199](6) [167] 654 653 [152]5,"========================================":[137] 655 654 [152]5," ========================" 655 [152]5:[130] 656 [152]5,[199](17)" (null)OTAL NUMBER OF RECORDS IN FILE IS"T 657 [152]5:[152]5,[199](27);[199](64):[143] * RESET * 658 [160] 5:[142] 659 [143] * DIRECTORY READ * 660 [141] 684:[153]" (null)OU WILL NOT LOSE ANY LOADED FILE" 661 [153]:[153][163]8)"** (null)EY LENWAIT TO LENONTINUE **" 662 [161] J$:[139] J$[179][177]"C" [167] 662 663 [153]"LOAD":[153]" ONSYS(null)LEASE DO NOT DISTURB !" 664 [159]8,8,8,"#" 665 T$(0)[178]"DEL":T$(1)[178]"SEQ":T$(2)[178]"PRG":T$(3)[178]"USR":T$(4)[178]"REL":T$(5)[178]"???" 666 [153]" STR$ETAILED STR$IRECTORY (null)ISTWAIT" 667 [153]"SYS STR$RIGHT$(null)(null) LEFT$VALATNSTR$VAL(null):";:[152]15,"U1 8 0 18 0":[152]15,"B-P:8 144" 668 [129] I[178]1[164]16:[161]#8,A$:[153]A$;:[130]:[153]"WAITSYS RIGHT$STR$:";:[161]#8,A$:[161]#8,A$ 669 [129]I[178]1[164]5:[161]#8,A$:[153]A$;:[130]:[153] 670 [153]"WAITSYS ASCRIGHT$(null)VAL(null)ATN(null)VAL (null)(null)(null)VAL (null)RIGHT$(null)VAL (null)(null)'(null) (null)VALLEN(null)":S[178]1:T[178]18 671 [152]15,"U1 8 0"T;S:[161]#8,A$:T[178][198](A$[170][199](0)):[161]#8,A$:S[178][198](A$[170][199](0)) 672 [129]I[178]0[164]7:[152]15,"B-P:8"I[172]32[170]2:[161]#8,A$:[139]A$[178]""[167]680 673 TP[178][198](A$):[161]#8,A$:TK[178][198](A$[170][199](0)):[161]#8,A$:SC[178][198](A$[170][199](0)) 674 A[178]TP[175]15:[139]A[177]4[167]A[178]5 675 L$[178]"":[129]J[178]1[164]16:[161]#8,A$:L$[178]L$[170][199]([198](A$[170][199](0))):[130] 676 [152]15,"B-P:8"I[172]32[170]30:[161]#8,A$:SZ[178][198](A$[170][199](0)) 677 [153]" "L$""T$(A);:[139](TP[175]128)[178]0[167][153]"CMDCMDCMDCMD*"; 678 [139](TP[175]64)[178]64[167][153]"